package com.hnhp.mall.domain;

import java.math.BigDecimal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.hnhp.common.annotation.Excel;
import com.hnhp.common.core.domain.TreeEntity;

/**
 * 商品管理对象 tb_product
 * 
 * @author hnhp
 * @date 2025-05-12
 */
public class TbProduct extends TreeEntity
{
    private static final long serialVersionUID = 1L;

    /** 商品ID */
    @Excel(name = "商品ID")
    private Long productId;

    /** 商品名称 */
    @Excel(name = "商品名称")
    private String productName;

    /** 商品状态(1正常,0下架) */
    @Excel(name = "商品状态(1正常,0下架)")
    private Long productStatus;

    /** 商品图片 */
    @Excel(name = "商品图片")
    private String productImage;

    /** 商品排序 */
    @Excel(name = "商品排序")
    private Long productSort;

    /** 销售价格 */
    @Excel(name = "销售价格")
    private BigDecimal salePrice;

    /** 进货价格 */
    @Excel(name = "进货价格")
    private BigDecimal purchasePrice;

    /** 商品介绍 */
    @Excel(name = "商品介绍")
    private String productDesc;

    /** 库存量 */
    @Excel(name = "库存量")
    private Long stock;

    /** 销量 */
    @Excel(name = "销量")
    private Long salesVolume;

    /** 商品类目ID */
    @Excel(name = "商品类目ID")
    private Long categoryId;

    public void setProductId(Long productId) 
    {
        this.productId = productId;
    }

    public Long getProductId() 
    {
        return productId;
    }

    public void setProductName(String productName) 
    {
        this.productName = productName;
    }

    public String getProductName() 
    {
        return productName;
    }

    public void setProductStatus(Long productStatus) 
    {
        this.productStatus = productStatus;
    }

    public Long getProductStatus() 
    {
        return productStatus;
    }

    public void setProductImage(String productImage) 
    {
        this.productImage = productImage;
    }

    public String getProductImage() 
    {
        return productImage;
    }

    public void setProductSort(Long productSort) 
    {
        this.productSort = productSort;
    }

    public Long getProductSort() 
    {
        return productSort;
    }

    public void setSalePrice(BigDecimal salePrice) 
    {
        this.salePrice = salePrice;
    }

    public BigDecimal getSalePrice() 
    {
        return salePrice;
    }

    public void setPurchasePrice(BigDecimal purchasePrice) 
    {
        this.purchasePrice = purchasePrice;
    }

    public BigDecimal getPurchasePrice() 
    {
        return purchasePrice;
    }

    public void setProductDesc(String productDesc) 
    {
        this.productDesc = productDesc;
    }

    public String getProductDesc() 
    {
        return productDesc;
    }

    public void setStock(Long stock) 
    {
        this.stock = stock;
    }

    public Long getStock() 
    {
        return stock;
    }

    public void setSalesVolume(Long salesVolume) 
    {
        this.salesVolume = salesVolume;
    }

    public Long getSalesVolume() 
    {
        return salesVolume;
    }

    public void setCategoryId(Long categoryId) 
    {
        this.categoryId = categoryId;
    }

    public Long getCategoryId() 
    {
        return categoryId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("productId", getProductId())
            .append("productName", getProductName())
            .append("productStatus", getProductStatus())
            .append("productImage", getProductImage())
            .append("productSort", getProductSort())
            .append("salePrice", getSalePrice())
            .append("purchasePrice", getPurchasePrice())
            .append("productDesc", getProductDesc())
            .append("stock", getStock())
            .append("salesVolume", getSalesVolume())
            .append("categoryId", getCategoryId())
            .append("createTime", getCreateTime())
            .append("createBy", getCreateBy())
            .append("updateBy", getUpdateBy())
            .append("remark", getRemark())
            .toString();
    }
}
